// 管理用户数据相关

import { defineStore } from "pinia"
import { ref } from "vue"
import { loginAPI } from '@/apis/user';
import { useCartStore } from "./cartStore";

export const useUserStore = defineStore('user', () => {
    // 1. 定义管理用户数据的 state
    const userInfo = ref({}) // 用户信息

    // 2. 定义操作状态的方法 action
    const getUserInfo = async ({ account, password }) => { // 获取用户信息
      const res = await loginAPI({ account, password })
      userInfo.value = res.result // 赋值
    }

    const setUserInfo = (value) => { // 设置用户信息
      userInfo.value = value // 赋值
    }

    const clearUserInfo = () => { // 退出时清除用户信息
      userInfo.value = {} // 赋值
      // 清除购物车信息
      const cartStore = useCartStore()
      cartStore.clearCart()
    }

    // 3. 以对象的格式把state和action return
    return {
      userInfo,
      getUserInfo,
      setUserInfo,
      clearUserInfo
    }
  },
  {
    persist: true // 开启数据持久化
  }
)
